﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once

#include "GcmpCommandAction.h"
#include "TemporaryDimensionDefine.h"
#include "Vector3d.h"
#include "Coordinate3d.h"

namespace gcmp
{
    class IGraphicsNodeGroup;

    /// \brief 临时标注工具类
    class GCMP_COMMAND_ACTION_EXPORT TemporaryDimensionCommonsUtils
    {
    public:
        /// \brief 生成旋转角度临时标注
        /// \param centerDockPosition 旋转中心锚点
        /// \param startDockPosition 起点
        /// \param endDockPosition 终点
        /// \param coordinate3d 坐标系
        /// \param enInputState 输入状态
        /// \param dimensionStyle 标注样式
        /// \param pixelLength  单位像素长度
        /// \param dimemsionData 标注信息
        /// \return 角度临时标注
        static OwnerPtr<IGraphicsNodeGroup> GenerateRotationDimension(
            const Vector3d& centerDockPosition, const Vector3d& startDockPosition, const Vector3d& endDockPosition,
            const Coordinate3d& coordinate3d,
            const InputState& enInputState, const TemporaryDimensionStyle& dimensionStyle, double pixelLength,
            TemporaryDimensionData& dimemsionData);
    };
}



